Перетворення типів даних

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Комп'ютерна інженерія
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2009
Тип роботи:
Методичні вказівки до лабораторної роботи
Предмет:
Структури даних та алгоритми

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Кафедра ЕОМ "Перетворення типів даних" МЕТОДИЧНІ ВКАЗІВКИ до лабораторної роботи № 3 з дисципліни " Програмування. Частина III. Структури даних та алгоритми " для студентів напряму 6.050102 “Комп’ютерна інженерія” Львів – 2009 Методичні вказівки до лабораторної роботи "Перетворення типів даних" з дисципліни “Програмування. Частина IIІ. Структури даних та алгоритми" для підготовки студентів напряму 6.050102 “Комп’ютерна інженерія” / Укл. Т.А.Лисак, Л.О.Цигилик – Львів: Видавництво НУ “Львівська політехніка”, 2009 – 27 с. Укладач: Лисак Т.А., ст. викладач каф.ЕОМ Цигилик Л.О., асистент каф.ЕОМ Відповідальний за випуск: Мельник А.О., д-р техн. наук, проф. Рецензенти: Мороз І.В., ст. викладач каф.ЕОМ Юрчак І.Ю., доцент кафедри САПР, к.т.н. 1. МЕТА РОБОТИ Дослідження методів та засобів явного та неявного перетворення типів даних. 2. ТЕОРЕТИЧНІ ВІДОМОСТІ Перетворення типів Обчислення значень виразів в операторах мови C++ забезпечується виконанням операцій і викликом функцій. Операції використовують операнды, функції вимагають параметрів. Операнды і параметри характеризуються типами. У мові C++ не існує операцій, що, наприклад, забезпечували б додавання або множення операндів різних типів. Частину проблем, пов'язаних з узгодженням типів операндів і параметрів транслятор бере на себе. Фактично це означає введення ще однієї системи правил, що називається правилами стандартного перетворення типів. Перетворення типів мають місце в присвоюваннях, cast - операціях, викликах функцій і при виконанні операцій. Якщо в виразах зустрічаються операнды різних типів, то вони перетворюються до загального типу відповідно до деякого набору правил. Загалом, автоматично здійснюються тільки такі перетворення, що мають зміст, такі, наприклад, як перетворення цілого в дійсне. Вирази ж, позбавлені змісту, такі, наприклад, як використання змінної типу float в масивах як індекса, заборонені. Нехай, наприклад, потрібно виконати таку операцію: int ix = 0; ix = 5.74 + 1; // зазвичай компілюється з попередженням В цьому прикладі додаються літерали різних типів: 5.74 типу double та 1 типу int. Мова програмування C++ не може безпосередньо додати подібні операнди, спочатку відбувається зведення їх до одного типу. Для цього існують правила перетворення арифметичних типів. Загальний принцип такий: перейти від операнда меншого типу до більшого, щоб не втратити точності обчислень. В наведенному прикладі ціле значення 1 трансформується в тип double, і тільки після цього відбувається додавання. Таке перетворення виконується незалежно від бажання програміста, відтак воно і отримало назву неявного перетворення типу. Результат додавання двох чисел типу double теж має тип double. В прикладі це значення рівне 6.74. Тепер його необхідно присвоїти змінній ix. Тип змінної ix і тип результату обчислень 6.74 не співпадають, отже, тип результату буде приведений до типу змінної, тобто до типу int. Перетворення double в int відбувається автоматично, шляхом відкидання дробової частини (а не заокругленням її). Таким чином, 6.74 перетворюється в 6, і даний результат присвоюється змінній ix. При такому перетворенні може виникати втрата точності, тому більшість компіляторів видають попередження. Оскільки компілятор не заокруглює числа при перетворенні double в int, то при необхідності програміст повинен робити це сам, наприклад: double dx = 5.74; int ix = 1; ix = dx + ix + 0.5; // перетворення із заокругленням В цьому прикладі змінна іх набуває значення 7. За бажанням можна здійснити явне перетворення типів: ix = static_cast< int >(5.74) + 1; В цьому прикладі явно вказується компілятору привести величину 5.74 до типу int, а не додержуватись правил за замовчуванням. 2.1. Неявне перетворення типів Мова програмування С++ встановлює набір стандартних перетворень між об’єктами різних вбудованих типів, що неявно виконуються компілятором в таких випадках: В...
Антиботан аватар за замовчуванням

24.03.2013 13:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини